package com.emm.yixun.estate.service;

import javax.jws.WebService;

import com.emm.yixun.common.app.QueryCustomerRoomListReqDto;
import com.emm.yixun.common.app.QueryCustomerRoomListResDto;
import com.emm.yixun.common.app.QueryProjectRoomInfoListReqDto;
import com.emm.yixun.common.app.QueryProjectRoomInfoListResDto;
import com.emm.yixun.common.model.ProjectRoom;
import com.emm.yixun.common.model.dto.ProjectRoomDto;
import com.emm.yixun.common.model.dto.ProjectRoomPriceDto;
import com.emm.yixun.common.model.pmo.GraphicalVo;
import com.emm.yixun.common.model.pmo.PicHighchartsVo;
import com.emm.yixun.common.page.Page;
import com.emm.yixun.common.response.Response;
import com.emm.yixun.common.response.ResponseList;

@WebService
public interface ProjectRoomServiceFacade {
	/**
	 * 新增
	 */
	Response<ProjectRoomDto> save(ProjectRoomDto dto);

	/**
	 * 修改,当selective=true时修改非空列,当selective=false修改所有列
	 */
	Response<Integer> updateByPrimaryKey(ProjectRoomDto dto, Boolean selective);

	/**
	 * 逻辑删除
	 */
	Response<Integer> deleteByPrimaryKey(Long id);

	/**
	 * 主键查询
	 */
	Response<ProjectRoom> findById(Long id);

	/**
	 * 根据dto查询记录
	 */
	ResponseList<ProjectRoom> findByDto(ProjectRoomDto dto);

	/**
	 * 根据dto以及分页参数查询记录
	 */
	Page<ProjectRoom> findPageByDto(ProjectRoomDto dto, Integer begin, Integer row);

	// 批量修改
	Response<Boolean> saveBatchData(String jsonArray);

	Page<ProjectRoomPriceDto> findRoomPricePageByDto(ProjectRoomDto dto, Integer begin, Integer row);

	Response<Page<ProjectRoomDto>> getProjectRoomDtoPage(ProjectRoomDto dto, Integer limit, Integer page);
	
	/**
	* 方法描述 : 价格方案取房间信息
	* 创建者：ThinkPad 
	* 项目名称： emm-estate-api
	* 类名： ProjectRoomServiceFacade.java
	* 版本： v1.0
	* 创建时间： 2016年7月29日 下午2:19:08
	* @param roomId
	* @return Response<ProjectRoomPriceDto>
	 */
	Response<ProjectRoomPriceDto> findRoomPriceDetail(Long roomId);
	/**
	* 方法描述 : 从认筹信息中取房间信息
	* 创建者：ThinkPad 
	* 项目名称： emm-estate-api
	* 类名： ProjectRoomServiceFacade.java
	* 版本： v1.0
	* 创建时间： 2016年7月29日 下午2:20:01
	* @param roomId
	* @param payDeposit
	* @return Response<ProjectRoomPriceDto>
	 */
	Response<ProjectRoomPriceDto> findPayDeposit(Long roomId,Long payDeposit);
	/**
	* 方法描述 : 从认购信息中获取房间信息
	* 创建者：ThinkPad 
	* 项目名称： emm-estate-api
	* 类名： ProjectRoomServiceFacade.java
	* 版本： v1.0
	* 创建时间： 2016年7月29日 下午3:46:07
	* @param roomId
	* @param subscribeId
	* @return Response<ProjectRoomPriceDto>
	 */
	Response<ProjectRoomPriceDto> findSubscribe(Long roomId,Long subscribeId);
	
	public Response<ProjectRoomPriceDto> findProjectRoomPriceById(Long id);
	
	/**
	 * 根据项目ID查询项目房间业务数据
	 * 
	 * @param projectId
	 * @return ProjectRoom
	 */
	public ProjectRoom selectProjectRoom(Long projectId);
	
	public Response<Integer> updateByDto(ProjectRoomDto dto);
	
	
	/**
	 * “回来了社区” 新增接口
	 * 
	 *（6）客户跟进信息增量更新接口(queryProjectRoomInfoList)
	 * @author liujunze
	 * 分页查询
	 */
	QueryProjectRoomInfoListResDto queryProjectRoomInfoPage(QueryProjectRoomInfoListReqDto dto);
	
	/**
	 * “回来了社区” 新增接口
	 * 
	 * （7）客户与房产关联关系表增量接口(queryProjectRoomInfoList)
	 * @author liujunze
	 * 分页查询
	 */
	QueryCustomerRoomListResDto queryCustomerRoomPage(QueryCustomerRoomListReqDto dto);
	
	/**
	 * 修复错误数据功能
	 * 根据分期、楼栋、单元、房间名称获取实际房间
	 * @param dto
	 * @return
	 */
	public ResponseList<ProjectRoom> findRepairDataRoomByDto(ProjectRoomDto dto);
	
	/**
	 * 
	 * findIndustData:(业态统计). <br/>
	 * @author Administrator
	 * @param projectId
	 * @return
	 * @since JDK 1.6
	 */
	public GraphicalVo<PicHighchartsVo> findIndustData(Long projectId);
}
